As is known, electronic circuits that implement logical (Boolean) operations, i.e. operations involving logic states, have been available for a long time, these electronic circuits being known as logic gates. The NOT, AND, OR, XOR, NOR, NAND and XNOR operations are some of the logic operations performed by the more common logic gates.
A logic gate comprises one or more inputs able to receive respective electrical input signals, and one or more electrical outputs able to provide respective electrical output signals. Both the electrical input signals and the electrical output signals are typically digital signals, i.e. signals with electrical characteristics (voltage, for example) that can only assume two values over time, respectively indicating a first and a second logic state, in turn logically represented by bit “0” and bit “1”. Changes in the logic states correspond to rising or descending fronts of the corresponding electrical characteristics. In the following, for brevity, reference is simply made to electrical signals indicative of the logic states, implying reference to the values taken by the corresponding electrical characteristics of these electrical signals when indicative of these logic states.
Operationally, given a logic gate that implements a particular logic operation and given certain electrical input signals, or rather given certain logic states present at the electrical inputs of the logic gate, the logic gate provides one or more electrical output signals indicative of the corresponding output logic states such that the input logic states and the output logic states respect a truth table corresponding to the particular logic operation implemented by the logic gate. For example, in the particular case of an EXOR logic gate having two inputs and one output, the output logic state assumes the value “0” when the input logic states are the same (“00” or “11”) and assumes the value “1” when the input logic states are different. Vice versa, in the particular case of an EXNOR logic gate, the output logic state assumes the value “1” when the input logic states are the same (“00” or “11”), and assumes the value “0” when the input logic states are different.
At the logical level, the behaviour of a logic gate is exhaustively described by the corresponding truth table.
At the electrical level, the description of the logic gates becomes complicated, as each logic gate, which is physically embodied by means of an electronic circuit, introduces propagation delays and reacts to changes in the logic state at its inputs in a non-ideal manner. In particular, given a time instant t0 in which a rising or descending front of an electrical input signal occurs, the logic gate changes (if necessary) the logic state on its output (or outputs) with a certain delay with respect to time instant t0. In addition, the fronts of the electrical signals are never ideal, i.e. they do not provide instantaneous switching of the electrical characteristic from the first to the second value, but rather exhibit a transition period in which the electrical characteristic assumes intermediate values and in which the behaviour of the logic gate is undetermined. Lastly, electrical signals are inevitably affected by noise, with consequent performance degradation of the logic gate.
Despite the above-described drawbacks, electrical logic gates have turned out to be of decisive importance in the development of digital electronics; however, an increasing need is felt for logic gates of a different type, ideally unaffected by the drawbacks that characterize electrical logic gates, and consequently characterized, for example, by minimal switching times, absence of noise and reduced consumption.